using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.Serialization;
using System.Xml.Serialization;

namespace Cuahsi.Data.Interop.WaterML2.swe_20
{
    [XmlInclude(typeof(CountRangeType))]
    [XmlInclude(typeof(BooleanType))]
    [XmlInclude(typeof(TimeRangeType))]
    [XmlInclude(typeof(TimeType))]
    [XmlInclude(typeof(CategoryRangeType))]
    [XmlInclude(typeof(CountType))]
    [XmlInclude(typeof(TextType))]
    [XmlInclude(typeof(CategoryType))]
    [XmlInclude(typeof(QuantityRangeType))]
    [XmlInclude(typeof(QuantityType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")]
    [Serializable()]
    [DebuggerStepThrough()]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.opengis.net/swe/2.0")]
    [XmlRoot("AbstractSimpleComponent", Namespace = "http://www.opengis.net/swe/2.0", IsNullable = false)]
    [DataContract(Name = "AbstractSimpleComponentType", Namespace = "http://www.opengis.net/swe/2.0")]
    public abstract partial class AbstractSimpleComponentType : AbstractDataComponentType
    {

        private List<QualityPropertyType> qualityField;

        private NilValuesPropertyType nilValuesField;

        private string referenceFrameField;

        private string axisIDField;

        public AbstractSimpleComponentType()
        {
            this.nilValuesField = new NilValuesPropertyType();
            this.qualityField = new List<QualityPropertyType>();
        }

        [XmlElement("quality")]
        [DataMember()]
        public List<QualityPropertyType> quality
        {
            get
            {
                return this.qualityField;
            }
        }

        [DataMember()]
        public NilValuesPropertyType nilValues
        {
            get
            {
                return this.nilValuesField;
            }
            set
            {
                this.nilValuesField = value;
            }
        }

        [XmlAttribute(DataType = "anyURI")]
        [DataMember()]
        public string referenceFrame
        {
            get
            {
                return this.referenceFrameField;
            }
            set
            {
                this.referenceFrameField = value;
            }
        }

        [XmlAttribute()]
        [DataMember()]
        public string axisID
        {
            get
            {
                return this.axisIDField;
            }
            set
            {
                this.axisIDField = value;
            }
        }
    }
}